#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
音视频分离桌面应用
主程序入口
"""

import sys
import os
import tkinter as tk
from tkinter import messagebox

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from gui.main_window import MainWindow
from utils.helpers import check_dependencies, get_system_info

def check_environment():
    """检查运行环境"""
    print("检查运行环境...")
    
    # 检查依赖
    dependencies = check_dependencies()
    missing_deps = []
    
    for dep, available in dependencies.items():
        status = "✓" if available else "✗"
        print(f"  {dep}: {status}")
        if not available:
            missing_deps.append(dep)
    
    if missing_deps:
        print(f"\n缺少依赖: {', '.join(missing_deps)}")
        print("请安装缺少的依赖后重试。")
        return False
    
    # 检查系统信息
    system_info = get_system_info()
    print(f"\n系统信息:")
    print(f"  平台: {system_info['platform']}")
    print(f"  Python版本: {system_info['python_version'].split()[0]}")
    
    return True

def main():
    """主函数"""
    print("=" * 50)
    print("音视频分离桌面应用")
    print("=" * 50)
    
    # 检查环境
    if not check_environment():
        print("\n环境检查失败，程序退出。")
        sys.exit(1)
    
    print("\n启动应用程序...")
    
    try:
        # 创建主窗口
        root = tk.Tk()
        
        # 设置窗口图标（如果有的话）
        try:
            # 这里可以设置应用图标
            # root.iconbitmap('icon.ico')
            pass
        except:
            pass
        
        # 创建主窗口实例
        app = MainWindow(root)
        
        # 启动主循环
        root.mainloop()
        
    except Exception as e:
        print(f"启动应用程序时出错: {str(e)}")
        messagebox.showerror("错误", f"启动应用程序时出错:\n{str(e)}")
        sys.exit(1)

if __name__ == "__main__":
    main() 